9
תגובות
שלום,
יש לי קוד שמקטין תמונות עם gd,
ועל השרת התקנתי את התכנה jpgoptim שמייעלת את התמונה ושתשקול פחות עם אותה איכות.
עכשיו בקוד ההקטנה של התמונות נוצר תמונה אבל היא לא פיסית,
היא רק בקוד שבסוף היא מושמדת,
השאלה היא כזאת:
האם ניתן לעבד את התמונה. לפני שליחת ללקוח בעזרת jpgoptim?

תודה לעונים :-)

9 תשובות

avatar ענה intval ב 17 לאוגוסט 2012 #

יש לך מגוון דרכים להפעיל פקודות מתוך PHP
php.net/exec
php.net/system
php.net/proc_open

avatar ענה mmh19 ב 17 לאוגוסט 2012 #

תודה אלכס,
אבל את זה אני יודע,
שים לב שוב לבעיה שלי:
פעולת הפקודה צריך להתבצע על משאב שנמצא רק בPHP.
על תמונה שPHP מייצר.

avatar ענה intval ב 21 לאוגוסט 2012 #

כנראה שתצטרך לשמור את התמונה לקובץ, כיוון שהמשאב פנימי ל PHP.
אמנם אפשר לנסות לקבל גישה לזיכרון של PHP אל אותו משאב, אבל התכנות האחרות לא יבינו שזה תמונה.

avatar ענה mmh19 ב 23 לאוגוסט 2012 #

אוקיי הבנתי,
עכשיו השאלה אם יש עניין בכלל להתאמץ בשביל זה?
אולי ידוע לך על קוד שמקטין את גודל התמונה (במשקל לא בפיקסלים)

avatar ענה mat ב 23 לאוגוסט 2012 #

יש את הפונקציה הזאת.

imagejpeg ( resource $image [, string $filename [, int $quality ]] )


אתה יכול לשמור לקובץ tmp ואז לעבד את זה דרך התוכנה.

הבנתי שהתוכנה הזאת לא מעבדת מחדש היא פשוט מסדרת הקידוד הקיים עם פחות זיכרון.
תנסה אותה על קובץ אחד ותראה כמה זה חוסך ולפי זה תשקול עם זה שווה.

בפרמטר של הפונקציה שמוציאה jpg ב php יש פרמטר אחרון של האיכות. שם אתה יכול להוריד את האיכות וזה יהיה קובץ יותר קטן, בלי להוריד את כמות הפיקסלים.

avatar ענה mmh19 ב 23 לאוגוסט 2012 #

@mat תודה,
אבל הדרך הזאת לא מפחיתה את משקל התמונה ללא איבוד של איכות.
וזה חוסך הרבה לפעמים 50% אפילו,
בנתיים עשיתי קרון שירוץ על כל התמונות שבשרת פעם בחודש.

avatar ענה intval ב 23 לאוגוסט 2012 #

אני מאמין שרוב התוכנות האלה עובדות דרך imageMagic
או שכבר יש את האלגוריטמים הנכונים ממומשים ב PHP.
תנסה לראות אם פקודה כמו http://php.net/manual/en/imagick.setimagecompressionquality.php
נותנת לך את התוצאה הרצויה

בנוסף mat אמר נכון. אין טעם לתת 100 אחוז quality.
70-80 נותנים תוצאה מעולה גם מבחינת גודל וגם מבחינת איכות.

בנוסף PNG נותנים את התוצאות הכי טובות מבחינת גודל. עדיף להשתמש בהם על פני דברים אחרים.
ולהשאיר איזשהי תוכנה בקרון שמקבצת את הקבצים נראה פתרון בסדר גמור.

avatar ענה mmh19 ב 23 לאוגוסט 2012 #

אלכס איך משתמשים imagick?
צריך להתקין על השרת משהו?

avatar ענה intval ב 24 לאוגוסט 2012 #

כן, זוהי הרחבת pecl שצריך להתקין כמו כל שאר ההרחבות.
תלוי במערכת ההפעלה שלך, זה לא אמור להיות מסובר.
חפש פשוט installing pecl extensions on win/mac/ubuntu/fedora/whatever